import 'package:flutter/material.dart';

class BaseStyles {
  BaseStyles._();

  // 用于特别强调的和突出的文字颜色、小面积的标签/按钮
  static final Color ff004f = const Color(0xFFFF004F);

  // 用于一级文字，例如重要文字、标题文字、菜单文字等
  static final Color b333333 = const Color(0xFF333333);

  // 用于大多数二级文字，例如列表说明文字、字段名称文字等
  static final Color b868686 = const Color(0xFF868686);

  // 用于底部菜单栏未选中时图标和文字颜色
  static final Color b6b6b6 = const Color(0xFFB6B6B6);

  // 用于搜索框提示文字、输入框提文字、指引提示文字颜色、指引性质图标颜色
  static final Color cccccc = const Color(0xFFCCCCCC);

  // 线框按钮默认线框颜色
  static final Color dfdfdf = const Color(0xFFDFDFDF);

  // 用于少数直线颜色，例如页面顶部底部导航分割线、底部固定按钮与页面分割线等
  static final Color efefef = const Color(0xFFEFEFEF);

  // 用于内容区分各模块间的分割线、分割色块、页面主要背景颜色
  static final Color f3f3f3 = const Color(0xFFF3F3F3);

  // 用于置于白色填充之内的灰色填充色、报表灰色行填充色（颜色比#F3F3F3浅）
  static final Color f8f8f8 = const Color(0xFFF8F8F8);

  // 黑色
  static final Color black = const Color(0xFF333333);

  // 白色
  static final Color white = const Color(0xFFFFFFFF);

  // 蓝色，用于APP中表示可点击编辑文字/图标颜色
  static final Color blue = const Color(0xFF5E96F4);

  // 黄色，用于预警性提醒，例如即将开始/未结算
  static final Color yellow = const Color(0xFFFFBF00);

  // 绿色，用于成功性质提醒标识，例如成功、完成、通过等
  static final Color green = const Color(0xFF34A853);

  // 橙色，用于待办、阶段性提醒标识，例如进行中/待审批
  static final Color orange = const Color(0xFFFF8A00);

  // 红色，用于错误、失败、严重警告等否定类标识，例如未完成、被驳回等
  static final Color red = const Color(0xFFF04134);

  // 灰色，用于草稿单据标识提醒色
  static final Color grey = const Color(0xFF868686);

  // 灰蓝色，用于会员 / 导购头像默认颜色
  static final Color greyBlue = const Color(0xFFC0CADE);

  // 金色，用于会员列表的会员卡类型默认颜色
  static final Color golden = const Color(0xFFBF9C4F);

  static TextStyle subtitle1(BuildContext context, {double fontSize}) => Theme.of(context).textTheme.subtitle1.copyWith(fontSize: fontSize);
  static TextStyle titleMedium(BuildContext context, {double fontSize}) => subtitle1(context,fontSize: fontSize);

  static TextStyle bodyLarge(BuildContext context, {double fontSize}) => Theme.of(context).textTheme.bodyText1.copyWith(fontSize: fontSize);
  static TextStyle bodyText1(BuildContext context, {double fontSize}) => bodyLarge(context,fontSize: fontSize);

  /// 描述文本样式
  static TextStyle subtitle2(BuildContext context, {double fontSize = 12.0}) => Theme.of(context).textTheme.subtitle2.copyWith(fontSize: fontSize);
  static TextStyle titleSmall(BuildContext context, {double fontSize = 12.0}) => subtitle2(context,fontSize: fontSize);

  /// 基础文本样式
  static TextStyle bodyMedium(BuildContext context) => Theme.of(context).textTheme.bodyText2;

  /// 页面标题样式
  static TextStyle headLine1(BuildContext context) => Theme.of(context).textTheme.bodyText2.copyWith(fontSize: 15.0);

  /// 文本输入框提示文本样式
  static TextStyle hintStyle(BuildContext context) => Theme.of(context).inputDecorationTheme.hintStyle;

  /// 主题颜色
  static Color textPrimaryColor(BuildContext context) => Theme.of(context).primaryColor == white ? black : Theme.of(context).primaryColor;
}
